<?php
/**
 * Created by PhpStorm.
 * User: lx
 * Date: 2020/1/3
 * Time: 11:08
 */

namespace app\command\controller;

class MyCurl
{

    /**
     * 提交数据
     * @param  string $url 请求Url
     * @param  string $method 请求方式
     * @param  array/string $headers Headers信息
     * @param  array/string $params 请求参数
     * @return 返回的
     */
    function curlRequest($url,$params = "", $method = "GET", $headers = array("Content-type:application/x-www-form-urlencoded")){
        if (is_array($params)) {
            $requestString = http_build_query($params);
        } else {
            $requestString = $params ? : '';
        }

        if (empty($headers)) {
            $headers = array('Content-type: text/json');
        } elseif (!is_array($headers)) {
            parse_str($headers,$headers);
        }

        // setting the curl parameters.
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        // turning off the server and peer verification(TrustManager Concept).
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);

        // setting the POST FIELD to curl
        switch ($method){
            case "GET" : curl_setopt($ch, CURLOPT_HTTPGET, 1);break;
            case "POST": curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $requestString);break;
            case "PUT" : curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
                curl_setopt($ch, CURLOPT_POSTFIELDS, $requestString);break;
            case "DELETE":  curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
                curl_setopt($ch, CURLOPT_POSTFIELDS, $requestString);break;
        }

        // getting response from server
        $response = curl_exec($ch);

        //close the connection

        //return the response
        if (stristr($response, 'HTTP 404') || $response == '') {
            return array("code"=>1,'Error' => '请求错误');
        }
        if(curl_error($ch)){
            return array("code"=>2,'Error' => curl_error($ch));
        }
        curl_close($ch);
        return $response;
    }
}